QT 窗体控件的透明度设置(三种方法)

您所在的位置:网站首页 qt 背景半透明 控件不透明 QT 窗体控件的透明度设置(三种方法)

QT 窗体控件的透明度设置(三种方法)

2024-01-05 02:20| 来源: 网络整理| 查看: 265

QT 窗体控件的透明度设置(三种方法)

1:整个窗体 targetForm->setWindowOpacity() ; 函数即可实现,效果为窗体及窗体内所有控件都透明化了 2:自定义页面或控件 当设置一个QWidget(一般自定义页面或控件时用QWidget)时,直接设置其窗体透明度无法实现透明效果,目前找到的方法是将整个QWidget当做图形元素,对该图形元素进行设置透明度效果, QGraphicsOpacityEffect *opacityEffect=new QGraphicsOpacityEffect; targetElement->setGraphicsEffect(opacityEffect); opacityEffect->setOpacity(0.7); 这样处理后就能实现透明化效果。 3: 用颜色中的透明度值设置 如果需要将自己画的形状,控件背景,边框,文字等可以用颜色上色的地方进行透明化,只需要将该部位的颜色设置一个透明度即可。 // 画一个半透明圆角矩形 QPainter *painter = new QPainter(this); painter->setPen(Qt::NoPen); painter->setBrush(QColor(0,170,255,100)); // 最后一项为透明度 painter->setOpacity(0.6); painter->drawRoundRect(0,0,100,100,10,10);// 画圆角矩形 // 设置某控件的背景颜色为半透明 QWidget *widget = new QWidget;// QWidget可以是任意QWidget派生的控件 widget->setAutoFillBackground(true);

QPalette palette; palette.setColor(QPalette::Background, QColor(192,253,123,100)); // 最后一项为透明度 //palette.setBrush(QPalette::Background, QBrush(QPixmap(":/background.png"))); widget>setPalette(palette);

// 如果背景图片需要透明化,直接用一张半透明的png图片做背景或者用方法二将整个控件都半透明化

这种用法一般用于需要设置透明的位置不多时才这样处理,如果自绘内容比较复杂,还是直接设置整体的透明度效果比较简单。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3